package cn.fuxue.hrms.common.entity;
import java.sql.Timestamp;
/**
 * @author 王文勇
 * @version 1.0
 * 补签申请实体类
 */
public class ReissueRequest {
    // 补签申请唯一标识
    private int id;
    // 申请补签的员工唯一标识，关联员工表
    private int employeeId;
    // 关联的考勤记录唯一标识，表明是针对哪条考勤记录申请补签
    private int attendanceId;
    // 原考勤时间
    private Timestamp originalTime;
    // 补签申请原因
    private String reason;
    // 补签申请状态，PENDING 表示待审批，APPROVED 表示已批准，REJECTED 表示已拒绝
    private Status status;

    // 无参构造函数
    public ReissueRequest() {
    }

    // 全参构造函数
    public ReissueRequest(int id, int employeeId, int attendanceId, Timestamp originalTime, String reason, Status status) {
        this.id = id;
        this.employeeId = employeeId;
        this.attendanceId = attendanceId;
        this.originalTime = originalTime;
        this.reason = reason;
        this.status = status;
    }

    // Getter 和 Setter 方法
    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public int getEmployeeId() {
        return employeeId;
    }

    public void setEmployeeId(int employeeId) {
        this.employeeId = employeeId;
    }

    public int getAttendanceId() {
        return attendanceId;
    }

    public void setAttendanceId(int attendanceId) {
        this.attendanceId = attendanceId;
    }

    public Timestamp getOriginalTime() {
        return originalTime;
    }

    public void setOriginalTime(Timestamp originalTime) {
        this.originalTime = originalTime;
    }

    public String getReason() {
        return reason;
    }

    public void setReason(String reason) {
        this.reason = reason;
    }

    public Status getStatus() {
        return status;
    }

    public void setStatus(Status status) {
        this.status = status;
    }

    // 补签申请状态的枚举
    public enum Status {
        PENDING, APPROVED, REJECTED
    }

    @Override
    public String toString() {
        return "ReissueRequest{" +
                "id=" + id +
                ", employeeId=" + employeeId +
                ", attendanceId=" + attendanceId +
                ", originalTime=" + originalTime +
                ", reason='" + reason + '\'' +
                ", status=" + status +
                '}';
    }
}
